package tec;

class TestPassagerLunatique
    extends TestPassagerAbstrait{

    void lancer(){
	int nbTest = 8;
	super.lancer();
	
	testChoixChangerPlace();
	System.out.print('.'); nbTest++;
	
	testChoixPlaceMontee();
	System.out.print('.'); nbTest++;
	
	System.out.println("(" + nbTest + "):OK: " + getClass().getName()); 
	
    }
    

    void testChoixChangerPlace(){
	Passager passager = FabriqueTec.fairePassagerLunatique("Marc", 3);
	FauxBus bus = new FauxBus();
	bus.status = FauxBus.ASSISDEBOUT;
	passager.accepterPlaceDebout();
	passager.nouvelArret(bus, 1);
	assert( "demanderChangerEnAssis" == bus.messages.getLast()) : "Changement Debout-> assis fail"  ;

	passager.accepterPlaceAssise();
	passager.nouvelArret(bus, 2);
	assert( "demanderChangerEnDebout" == bus.messages.getLast()) : "Changement  Assis -> Debout fail";

    }

    void testChoixPlaceMontee(){
	Passager passager =  FabriqueTec.fairePassagerLunatique("Marc", 3);
	FauxBus bus = new FauxBus();
	bus.status = FauxBus.DEBOUT;
	
	passager.monterDans(bus);
	assert ( "demanderPlaceDebout" == bus.messages.getLast()) : "choixPlaceMontee fail";

	bus.status = FauxBus.ASSIS;
	passager.monterDans(bus);

	assert ( "demanderPlaceAssise" == bus.messages.getLast()) : "choixPlaceMontee fail";

    }

    public PassagerAbstrait creerPassager(String nom, int destination){
	PassagerAbstrait passager = FabriqueTec.fairePassagerLunatique(nom, destination);
	return passager;
    }


}